Search Tree Restructuring
نویسندگان
چکیده
Poor branching decisions in a search tree can increase solve time by orders of magnitude. We introduce a new approach where, instead of committing to the tree so far, we restructure the tree throughout the search. This has the advantages of removing unnecessary decisions from the tree and relocating important decisions closer to the root. We define two tree-modifying operators: delete and promote, and prove that they maintain correctness and completeness. We show that conflict-directed backtracking (CDBT) can be expressed as a compound operation of the two; however it is only one member of a rich space of compound tree operations. We study a more general and aggressive compound operation which we coin path contraction. We develop several policies for applying that operation. We prove that under a natural assumption, one of the policies (and CDBT) is never harmful. In practice we show that policies that apply path contraction more aggressively are even better. The technique applies to both optimization and constraint satisfaction. We present binary integer programming experiments on unsatisfiable graph coloring and 3SAT. Our techniques yield significant speed improvements and reduce node count by up to 82%.
منابع مشابه
An Explanation of Splaying
Just as in bottom-up splaying, the idea is to follow each access by a restructuring of the search tree along the path from the accessed item to the root of the tree. The restructuring is done in a local fashion, i.e., without using information about the global structure of the tree. We call the restructuring algorithm the super̈ isor; it operates with a set of rules called the ruleset. Each unit...
متن کاملRestructuring the concurrent B+-tree with non-blocked search operations
Database systems frequently establish the B-tree style indexes for fast access to data records. Since the B-tree index could be a performance bottleneck, many concurrent algorithms have been proposed to improve concurrency of B-tree accesses. In this paper we propose a new concurrent Bþ-tree algorithm that provides high concurrency and an efficient tree restructuring method. As the proposed met...
متن کاملA New Class of Balanced Search Trees: Half Balanced Binary Search Trees
— A newclassojbalancedbinary search trees is introduced: thehalf-balancedbinary trees. When used as a node search tree, a hal]-balanced binary tree containing n keys has a height at most 2 lg(n + 2) —2. Algorithms are given for IN SERT and DELETE instructions, having time complexity O(lg n). A remarkable resuit is that at most one local restructuring must be performed during the (leletion or th...
متن کاملAdaptive Structuring of Binary Search Trees Using Conditional Rotations
Consider a set A = {A1, A2,...,AN} of records, where each record is identified by a unique key. The records are accessed based on a set of access probabilities S = [s1,s2,...,sN] and are to be arranged lexicographically using a Binary Search Tree (BST). If S is known a priori, it is well known [10] that an optimal BST may be constructed using A and S. We consider the case when S is not known a ...
متن کاملComplexity of Layered Binary Search Trees with Relaxed Balance
When search trees are made relaxed, balance constraints are weakened such that updates can be made without immediate rebalancing. This can lead to a speed-up in some circumstances. However, the weakened balance constraints also make it more challenging to prove complexity results for relaxed structures. In our opinion, one of the simplest and most intuitive presentations of balanced search tree...
متن کاملRestructuring binary search trees revisited
Binary search trees are a fundamental data structure. There are two complexity metrics commonly associated with them: the maximum number of comparisons made during a search and the expected number of comparisons made during a search. Minimizing these metrics, separately or together, has been extensively studied. The difficulty of doing this depends on how much information is given. There are 2n...
متن کامل